﻿using furion.blog.Domain.Query.Message;
using furion.blog.Domain.Shared;
using furion.blog.Domain.Shared.Dto.Message;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace furion.blog.Application.Contracts
{
    public interface IMessageService
    {

        /// <summary>
        /// 统计
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<long> Count(MessageDetailQuery query);

        /// <summary>
        /// 信息分页
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<PageVO> List(MessageListQuery query);

        /// <summary>
        /// 当前登录会员信息列表
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<PageVO> MyList(MessageListQuery query);

        /// <summary>
        /// 设置信息为打开
        /// </summary>
        /// <param name="messageId"></param>
        /// <param name="memberId"></param>
        /// <returns></returns>
        Task<bool> Open(long messageId,long memberId);

        /// <summary>
        /// 回复
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<bool> Repeat(MessageRepeatDto dto);

        /// <summary>
        /// 删除自己的信息
        /// </summary>
        /// <param name="id"></param>
        /// <param name="memberId"></param>
        /// <returns></returns>
        Task<bool> DelBySelf(long id,long memberId);

    }
}
